package com.ai.dmc.index.common.bean;

import java.util.ArrayList;
import java.util.List;

import com.ai.dmc.index.common.util.JsonReflectUtil;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * @Description : 地域信息
 * 
 * @author : wucm
 * @date : 2015年7月27日 上午9:41:55
 * @version V1.0
 * 
 */
public class AreaBean {
	public static String TYPE_ALL = "all";// 全部
	public static String TYPE_PROVINCE = "province";// 省
	public static String TYPE_CITY = "city";// 地市
	public static String TYPE_COUNTY = "county";// 区县
	public static String TYPE_REGION = "region";// 区域
	public static String TYPE_SUB_REGION = "subRegion";// 子区域
	public static String ENABLE_FLAG_ENABLE = "1";// 启用
	public static String ENABLE_FLAG_DISENABLE = "0";// 不启用

	// 基本信息
	private String areaId; // 区域编码
	private String areaName; // 区域名称
	private String upperId;// 父级编码
	private String upperName;// 父级编码
	private String latLngList; // 经纬度
	private String coreLongitude; // 中心点经度
	private String coreLatitude; // 中心点纬度
	private String warnZoomLevel; // 告警墙缩放级别
	private String panoZoomLevel; // 全景墙缩放级别
	private String largeZoomLevel; // 大屏缩放级别
	private String areaValue; // 面积
	private String chartFlag; // 热力图启用标签：0 不启用，1 启用
	private String chartLatLngList; // 热力图经纬度序列
	private String remark; // 备注
	private String orderid;// 排序
	private String regionOnlineType;// 区域启用状态 0：删除，1：关闭，2：待启用，3：启用
	private String regionType;// 区域的类型，spe特殊区域，ud自定义区域
	private String heatmapCacheFlag;// 热力图缓存启动标志，0不启动；1启用
	private String cityId;// 城市编码
	private String cityName;// 城市名称
	private String countyId;// 区县编码
	private String countyName;// 区县名称
	private String regionId;// 区域编码
	private String regionName;// 区域名称
	private String subRegionId;// 子区域编码
	private String subRegionName;// 子区域名称

	// 城市编码数据集
	private ArrayList<String> cityIds;

	// 附加信息
	private String type;// 类型：city地市、region区域、subRegion子区域
	private String enableFlag = ENABLE_FLAG_ENABLE;// 是否启用，1启用；0不启用；如果地市下没有区域，默认不启用
	private String path;// 路径，x/xx/xxx

	public ArrayList<String> getCityIds() {
		return cityIds;
	}

	public void setCityIds(ArrayList<String> cityIds) {
		this.cityIds = cityIds;
	}

	// 权限信息
	private boolean hasRight = false; // 是否具有数据权限

	public String getAreaId() {
		return areaId;
	}

	public void setAreaId(String areaId) {
		this.areaId = areaId;
	}

	public String getAreaName() {
		return areaName;
	}

	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}

	public String getUpperId() {
		return upperId;
	}

	public void setUpperId(String upperId) {
		this.upperId = upperId;
	}

	public String getLatLngList() {
		return latLngList;
	}

	public void setLatLngList(String latLngList) {
		this.latLngList = latLngList;
	}

	public String getCoreLongitude() {
		return coreLongitude;
	}

	public void setCoreLongitude(String coreLongitude) {
		this.coreLongitude = coreLongitude;
	}

	public String getCoreLatitude() {
		return coreLatitude;
	}

	public void setCoreLatitude(String coreLatitude) {
		this.coreLatitude = coreLatitude;
	}

	public String getWarnZoomLevel() {
		return warnZoomLevel;
	}

	public void setWarnZoomLevel(String warnZoomLevel) {
		this.warnZoomLevel = warnZoomLevel;
	}

	public String getPanoZoomLevel() {
		return panoZoomLevel;
	}

	public void setPanoZoomLevel(String panoZoomLevel) {
		this.panoZoomLevel = panoZoomLevel;
	}

	public String getLargeZoomLevel() {
		return largeZoomLevel;
	}

	public void setLargeZoomLevel(String largeZoomLevel) {
		this.largeZoomLevel = largeZoomLevel;
	}

	public String getAreaValue() {
		return areaValue;
	}

	public void setAreaValue(String areaValue) {
		this.areaValue = areaValue;
	}

	public String getChartFlag() {
		return chartFlag;
	}

	public void setChartFlag(String chartFlag) {
		this.chartFlag = chartFlag;
	}

	public String getChartLatLngList() {
		return chartLatLngList;
	}

	public void setChartLatLngList(String chartLatLngList) {
		this.chartLatLngList = chartLatLngList;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getOrderid() {
		return orderid;
	}

	public void setOrderid(String orderid) {
		this.orderid = orderid;
	}

	public String getRegionOnlineType() {
		return regionOnlineType;
	}

	public void setRegionOnlineType(String regionOnlineType) {
		this.regionOnlineType = regionOnlineType;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getEnableFlag() {
		return enableFlag;
	}

	public void setEnableFlag(String enableFlag) {
		this.enableFlag = enableFlag;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public Boolean getHasRight() {
		return hasRight;
	}

	public void setHasRight(Boolean hasRight) {
		this.hasRight = hasRight;
	}

	public String getRegionType() {
		return regionType;
	}

	public void setRegionType(String regionType) {
		this.regionType = regionType;
	}

	public String getCityId() {
		return cityId;
	}

	public void setCityId(String cityId) {
		this.cityId = cityId;
	}

	public String getCountyId() {
		return countyId;
	}

	public void setCountyId(String countyId) {
		this.countyId = countyId;
	}

	public String getRegionId() {
		return regionId;
	}

	public void setRegionId(String regionId) {
		this.regionId = regionId;
	}

	public String getSubRegionId() {
		return subRegionId;
	}

	public void setSubRegionId(String subRegionId) {
		this.subRegionId = subRegionId;
	}

	public String getCityName() {
		return cityName;
	}

	public void setCityName(String cityName) {
		this.cityName = cityName;
	}

	public String getCountyName() {
		return countyName;
	}

	public void setCountyName(String countyName) {
		this.countyName = countyName;
	}

	public String getRegionName() {
		return regionName;
	}

	public void setRegionName(String regionName) {
		this.regionName = regionName;
	}

	public String getSubRegionName() {
		return subRegionName;
	}

	public void setSubRegionName(String subRegionName) {
		this.subRegionName = subRegionName;
	}

	public String getUpperName() {
		return upperName;
	}

	public void setUpperName(String upperName) {
		this.upperName = upperName;
	}
	
	public String getHeatmapCacheFlag() {
		return heatmapCacheFlag;
	}

	public void setHeatmapCacheFlag(String heatmapCacheFlag) {
		this.heatmapCacheFlag = heatmapCacheFlag;
	}

	/**
	 * 
	 * @Description : 转换为json格式，不递归遍历，只到下一级
	 * @return
	 * @return JSONObject
	 * 
	 * @author : wucm
	 * @date : 2015年7月27日 上午11:29:18
	 * 
	 */
	public JSONObject toJSON() {
		// 将基本类型字段转成json
		JSONObject j = JsonReflectUtil.formatToJSON(this);

		return j;
	}

	/**
	 * 
	 * @Description :热力图缓存是否启用
	 * 
	 * @return boolean
	 *
	 * @author : wucm
	 * @date : 2016年1月28日 上午10:04:27
	 *
	 */
	public boolean heatMapCacheEnable() {
		if ("1".equals(getHeatmapCacheFlag())) {
			return true;
		} else {
			return false;
		}
	}
}
